package JVM.第06篇_垃圾回收篇;

/**
 * 为什么需要GC?
 * 想要学习GC,首先需要理解为什么需要GC?
 * ●对于高级语言来说，一个基本认知是如果不进行垃圾回收，内存迟早都会被消耗完，
 * 因为不断地分配内存空间而不进行回收，就好像不停地生产生活垃圾而从来不打扫一样。
 * ●除了释放没用的对象，垃圾回收也可以清除内存里的记录碎片。
 * 碎片整理将所占用的堆内存移到堆的一端，以便JVM将整理出的内存分配给新的对象。
 * ●随着应用程序所应付的业务越来越庞大、复杂，用户越来越多，
 * 没有GC就不能保证应用程序的正常进行。
 * 而经常造成STW(停顿)的GC又跟不上实际的需求，所以才会不断地尝试对GC进行优化。
 *
 * 另一方面:
 * ●对于Java开发人员而言，自动内存管理就像是一个黑匣子，如果过度依赖于“自动”，
 * 那么这将会是一场灾难，最严重的就会弱化Java开发人员在程序出现内存溢出时定位问题和解决问题的能力。
 * ●此时，了解JVM的 自动内存分配和内存回收原理就显得非常重要，
 * 只有在真正了解JVM是如何管理内存后，我们才能够在遇见OutOfMemoryError时，
 * 快速地根据错误异常日志定位问题和解决问题。
 * ●当需要排查各种内存溢出、内存泄漏问题时，当垃圾收集成为系统达到更高并发量的瓶颈时，
 * 我们就必须对这些“自动化”的技术实施必要的监控和调节。
 *
 */
public class B_为什么GC {

}
